The model-view-controller (MVC) architecture is a well-known architecture used by computer programs that contain user interfaces (UIs). In the MVC architecture, user input, modeling of the external world, and visual feedback to the user are separated and handled by view, model, and controller objects. The controller interprets mouse and keyboard inputs from the user and maps these user actions to commands that are sent to the model and/or view to effect appropriate changes. The model manages one or more data elements, responds to queries about its state, and responds to instructions to change state. The view manages an area of the display and is responsible for presenting data to the user through a combination of graphics and text.